package cn.edu.hbpu.mapper;

import cn.edu.hbpu.entity.Goods;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author lcy
 * @date 2022/8/18 18:56
 * @description
 */
@Mapper
public interface GoodsMapper extends BaseMapper<Goods> {
    /**
     * 查询商品信息，并查询出所属的三级分类名
     *
     * @param offset   偏移量
     * @param pageSize 查询数据量
     * @return
     */
    List<Goods> pagingGoodsWithThirdCategoryName(@Param("offset") int offset, @Param("pageSize") int pageSize);

    /**
     * 根据创建时间，更新时间，分页查询商品列表及其对应的三级分类名
     * @param searchField
     * @param startDateTime
     * @param endDateTime
     * @param offset
     * @param pageSize
     * @return
     */
    List<Goods> pagingGoodsWithThirdCategoryNameByDateTime(String searchField, LocalDateTime startDateTime, LocalDateTime endDateTime, int offset, int pageSize);

    /**
     * 查询根据创建时间，更新时间搜索后的总条数
     * @param searchField
     * @param startDateTime
     * @param endDateTime
     * @return
     */
    Integer selectTotalCountByDateTime(String searchField, LocalDateTime startDateTime, LocalDateTime endDateTime);

    /**
     * 根据除了创建时间，更新时间的其它字段，分页查询商品列表及其对应的三级分类名
     * @param searchField
     * @param searchText
     * @param offset
     * @param pageSize
     * @return
     */
    List<Goods> pagingGoodsWithThirdCategoryNameByOtherField(String searchField, String searchText, int offset, int pageSize);

    /**
     * 查询根据除了创建时间，更新时间的其它字段搜索后的总条数
     * @param searchField
     * @param searchText
     * @return
     */
    Integer selectTotalCountByOtherField(String searchField, String searchText);
}
